package org.eclipse.gittab.fretboard.draw2d;

import org.eclipse.gittab.fretboard.FretboardDesign;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;


public class DefaultFretboardDesign implements FretboardDesign {
	
	public static final Color BG_COLOR = new Color(null, 255, 255, 206);//light yellow
	
	public static final Color FRETBOARD_COLOR = new Color(null, 90, 45, 0);//brown
	
	public static final Color FRET_COLOR = new Color(null, 192, 192, 192);//silver
	
	public static final Color STRING_COLOR = new Color(null, 70, 70, 70);//grey
	
	public static final Font TUNING_FONT = new Font(null, "Arial", 12, SWT.BOLD);
	
	public static final Color TUNING_FONT_COLOR = new Color(null, 0, 0, 0);
	
	public static final Font NOTE_FONT = new Font(null, "Comic Sans MS", 11, SWT.ITALIC);
	
	public static final Color NOTE_FONT_COLOR = new Color(null, 0, 0, 0);

	public static final Color HOVER_NOTE_COLOR = new Color(null, 255, 255, 255);
	
	public static final Color PLAY_NOTE_COLOR = new Color(null, 150, 0, 0); //red
	
	public DefaultFretboardDesign() {
	}
	
	public void dispose() {
		TUNING_FONT.dispose();
		NOTE_FONT.dispose();
	}
	
	@Override
	public Color background() {
		return BG_COLOR;
	}

	@Override
	public FretHeight fretHeight() {
		return FretHeight.MODERN;
	}

	@Override
	public Color fretboard() {
		return FRETBOARD_COLOR;
	}

	@Override
	public Color frets() {
		return FRET_COLOR;
	}

	@Override
	public FretInlay fretInlay() {
		return FretInlay.MODERN;
	}

	@Override
	public Color strings() {
		return STRING_COLOR;
	}

	@Override
	public Font noteFont() {
		return null;
	}

	@Override
	public Font stringLabelFont() {
		return TUNING_FONT;
	}

	@Override
	public Color noteFontColor() {
		return NOTE_FONT_COLOR;
	}

	@Override
	public Color stringLabelColor() {
		return TUNING_FONT_COLOR;
	}

	@Override
	public Color hoverNote() {
		return HOVER_NOTE_COLOR;
	}

	@Override
	public Color playNote() {
		return PLAY_NOTE_COLOR;
	}
}
